1. Technical Field
The present invention relates to data processing and, in particular, to power consumption in servers and server clusters. Still more particularly, the present invention provides a method, apparatus, and program for scheduling processor voltages and frequencies based on performance prediction and power constraints.
2. Description of Related Art
Modern server farm and cluster sites consume large quantities of power both to power and cool the machines in the site. At the same time, less power supply redundancy is offered, and power companies and government officials are requesting that power consumption be reduced during certain time periods. These trends lead to the possible requirement of responding to rapid reductions in the maximum power the site may consume. A range of solutions may exist, but each solution must respond to the new power budget rapidly before causing a cascading failure. The possible techniques include powering down some nodes or slowing all nodes in a system uniformly.
The concern with system-level and central processing unit (CPU) power is now a first-order design constraint across all classes of computing devices. While the primary problem for embedded and laptop computers is battery life and, thus, total energy consumption over time, the most important problem for servers and server clusters is maximum power. See Charles Lefurgy, et al.; “Energy Management for Commercial Servers”; Computer; volume 36, number 12, December, 2004; pages 39-48. Server computing environments have limitations on their internal power-delivery and cooling systems as well as installation limits on the total power and cooling available in the external environment. Prior work has led to the development of processor frequency and voltage scaling as a way to reduce processor power, which is often the most important contributor to system-level power consumption. However, in the past, dynamic voltage and frequency scaling have found their primary application in embedded and laptop machines.
Prior art solutions respond to changes in demand, but do so on an application-unaware basis. In these prior art schemes, an increase in CPU utilization leads to an increase in frequency and voltage while a decrease in utilization leads to a corresponding decrease. However, these solutions do not make any use of information about how efficiently the workload uses the processor or about its memory behavior. Instead, they rely on simple metrics like the number of non-halted cycles in an interval of time.
Another prior art solution explores the use of dynamic frequency and voltage scaling in the Linux® operating system with a focus on average power and total energy consumption. See K. Flautner et al.; “Vertigo: Automatic Performance-setting for Linux”; Proceedings of the 5th Symposium on Operating Systems Design and Implementation (OSDI '02); December, 2002; pages 105-116 (LINUX is a registered trademark of Linus Torvalds). The solution examines laptop applications and the interaction between the system and the user to determine the slack due to processor over-provisioning. The solution uses frequency and voltage scaling to reduce power while consuming the slack by running the computation slower. The Vertigo system dynamically uses multiple performance setting algorithms to reduce energy.
Yet another solution extends the ideas found in the Vertigo system to the domain of web server farms. The solution explores the use of dynamic voltage scaling to respond to changes in server demands. The solution also examines the use of request batching to gain larger reductions in power during periods of low demand. The above techniques compliment one another, but do not provide a means to address peak power.